import { defineConfig, loadEnv } from 'vite';
import vue from '@vitejs/plugin-vue';
import { resolve } from 'path'; // 找不到模块“path”或其相应的类型声明  @types/node
export default ({ mode }) => defineConfig({
  plugins: [vue()],
  // 配置scss变量
  css: {
    postcss: {
      plugins: [
        {
          postcssPlugin: 'internal:charset-removal',
          AtRule: {
            charset: (atRule) => {
              if (atRule.name === 'charset') {
                atRule.remove();
              }
            }
          }
        }
      ]
    },
    preprocessorOptions: {
      scss: {
        additionalData: '@import "@/styles/variables.scss";',
        charset: false
      }
    }
  },
  // 配置域名端口
  server: {
    host: '0.0.0.0',
    port: 8080,
    fs: {
      strict: false
    },
    // 配置代理
    proxy: {
      '/api': {
        target: loadEnv(mode, process.cwd()).VITE_BASE_URL,
        changeOrigin: true, // 设置访问目标地址允许跨域
        rewrite: path => path.replace(/^\/api/, '')
      }
    }
  },

  // 配置文件目录别名
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src'),
      '*': resolve(__dirname, ''),
      'vue-i18n': 'vue-i18n/dist/vue-i18n.cjs.js'
    }
  },
  // 打包配置
  build: {
    chunkSizeWarningLimit: 1500 // 块大小警告的限制（以 kbs 为单位）
  }
});
